function update(vnode) {
  // vnode: 新
  // this._vnode: 旧
  var oldVnode = this._vnode;
  this._vnode = vnode;
  // 对比的目的：更新真实dom

  if (!oldVnode) {
    this.__patch__(this.$el, vnode); // 首次渲染，没有旧vnode，会直接传递this.$el，然后生成真实dom替换，跟组件直接替换el配置哪里
  }
}

/**
 * 什么叫「相同」是指两个虚拟节点的标签类型、`key`值均相同，但`input`元素还要看`type`属性，因为type差异比较大
 * 
 * 在源码中是一个函数，名字叫做sameVnode，作用是判断两个vnode是否相同，就是是否是一个虚拟节点
 *
 * <h1>asdfdf</h1>        <h1>asdfasfdf</h1>    相同
 *
 * <h1 key="1">adsfasdf</h1>   <h1 key="2">fdgdf</h1>  不相同
 *
 * <input type="text" />    <input type="radio" />  不相同
 *
 * abc        bcd   文本节点相同
 *
 * {
 *  tag: undefined,
 *  key: undefined,   // 这里的key是undefined，因为没有key属性，都是undefined也表示相同
 *  text: "abc"
 * }
 *
 * {
 *  tag: undefined,
 *  key: undefined,
 *  text: "bcd"
 * }
 *
 *
 */
